1. Field of the Invention
The present invention relates generally to publishing files for viewing over a network and more particularly to transferring graphics information in computer assisted design (CAD) elements efficiently over a network.
2. Related Art
Graphic design computer programs, including CAD applications, generate large electronic files that can contain a great deal of data and detail about the graphic file and its individual components. For example, an architectural graphic file might display the floor plan of a building, showing walls, floors, windows, etc., as well as plumbing and electrical lines. The CAD file itself might contain further detail about what kind of plumbing materials are to be used or whether the plan for the area displayed has been approved. CAD data are often stored in elements, where each element in the file represents a component, a group of components or a portion of a component contained in the drawing. For example, in a pipe design file, an element can represent a pipe, or a small part of a complex pump. The shape of the element can represent the shape of the component, or a symbolic representation of it.
Some CAD systems store the main design files on a server computer, and designers and builders may access the design files remotely from a client computer. In these prior art CAD viewing systems, the entire design file is typically transferred from the server to the client. Transfer of the entire design file leads to various inefficiencies. For example, the files can be quite large. These large files require extra time and expense to transfer. Further, a file typically contains more information than a user can view at one time. For example, a user may only require a view of one room of an entire office building floor plan. However, all of the unviewed and unneeded information is nevertheless transmitted to the client computer, slowing the user's access to the information.
There have been several approaches to sharing non-CAD image data over a network which attempt to overcome these problems. One approach, such at the one used by ModelServer Imager (MSI) of HMR, Inc., separates the image data into tiles, and only sends the tiles that are needed to the client. MSI serves raster data, however, not CAD data, and the tiles are only two dimensional. Additionally, the data in each overview is repeated in MSI, so that when a user makes a small shift in viewing area, the entire overview must be re-sent, even though part of the overview is used again. This makes the data sharing less efficient.
Another approach, used by Oracle Spatial, is to use a quadtree data structure to segment the spatial coverage of vector elements. A quadtree is only two dimensional, and, in Oracle Spatial, only supports one level of detail (LOD).
GeoVRML, an improvement on virtual reality meta language (VRML) designed for representing geographical data also uses tiles, as well as levels of detail (LOD). However, the data in each LOD is repeated at different resolutions, which results in a duplication of data.
VizStream of RealityWave, Inc. shares large three dimensional models over a network by streaming the data from the server to the client, allowing the client to start displaying the file before the entire file is received. The CAD files, however, must be converted into a special format for streaming, a process which can be time-consuming. In addition to the format transformation, the data itself is tessellated into triangular meshes, which causes loss of the original elements and some of the quality of the representation, and which dramatically increases file size.
Viecon Publisher (VP) of Bentley Systems, Inc. publishes CAD and raster data. However, the CAD elements are plotted and stroked, that is, each element in the CAD file is transformed into lines. Complex elements, such as circles, are transformed into sets of short lines that simulate their shape. The consequences of these transformations are that elements lose their analytical nature and the amount of data sent to the client increases dramatically for small complex elements such as text. VP uses views rather than tiles. If two overlapping views are needed, overlapping data is sent twice, once for each view. VP also sends all of the CAD elements in the view, regardless of the size of those elements, even those that are too small to be visible. This makes the size of the data sent to the client unnecessarily large.
Accordingly, there is a need for a system and a method of sharing graphical data, including vector data, over a network that is efficient in both time and network resources.